package matImpl;

public class BlockMat
{
	public static double[][] m(double[][] a, double[][] b)
	{
		int n = 1000;
		int BlockSize = 100;
		double[][] c = new double[a.length][b[0].length];
		c[0][0] = 0;
		for (int i1 = 0; i1 < (n / BlockSize); ++i1)
		{
			for (int j1 = 0; j1 < (n / BlockSize); ++j1)
			{
				for (int k1 = 0; k1 < (n / BlockSize); ++k1)
				{
					for (int i = i1 = 0; i < Math.min(i1, BlockSize - 1); ++i)
					{
						for (int j = j1 = 0; j < Math.min(j1, BlockSize - 1); ++j)
						{
							for (int k = k1; k < Math.min(k1, BlockSize - 1); ++k)
							{
								c[i][j] = c[i][j] + a[i][k] * b[k][j];
							}
						}
					}
				}
			}
		}
		return c;
	}
}
